package com.kika.obwiki.service;

import com.kika.obwiki.entity.Doc;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author cr
 * @since 2025-06-22
 */
public interface IDocService extends IService<Doc> {

  /**
   * 查询所有文档
   * 
   * @return 文档查询响应列表
   */
  List<com.kika.obwiki.resp.DocQueryResp> all();

  /**
   * 根据电子书ID查询所有文档
   * 
   * @param ebookId 电子书ID
   * @return 文档列表
   */
  List<com.kika.obwiki.resp.DocQueryResp> all(Long ebookId);

  /**
   * 根据名称分页查询文档
   * 
   * @param req 查询请求参数
   * @return 分页响应
   */
  com.kika.obwiki.resp.PageResp<com.kika.obwiki.resp.DocQueryResp> listByname(com.kika.obwiki.rep.DocQueryReq req);

  /**
   * 保存文档（新增或更新）
   * 
   * @param req 保存请求参数
   */
  void save(com.kika.obwiki.rep.DocSaveReq req);

  /**
   * 删除文档
   * 
   * @param id 文档ID
   */
  void delete(Long id);

  /**
   * 批量删除文档
   * 
   * @param ids 文档 id 列表
   */
  void delete(List<Long> ids);

  /**
   * 文档点赞
   * 
   * @param id 文档ID
   */
  void vote(Long id);

  /**
   * 定时批量更新电子书统计信息（文档数、阅读数、点赞数等）
   * 由定时任务调用，汇总doc表数据到ebook表
   *
   * @author cr
   */
  void updateEbookInfo();
}
